package Demo1;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class T2 {
//    查询式 写法
    public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        //建立连接
        Connection connection = dataSource.getConnection();
//        构建 sql
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
//        执行sql
       // ResultSet 表示查询的结果集合(临时表) 此处就需要针对表来进行遍历.
        ResultSet resultSet = statement.executeQuery();

//        循环遍历结果
//        通过 next 方法获取到临时表的每一行数据 如果获取到最后一行之后,在执行 next 返回false 循环结束
        while(resultSet.next()){
//            开始调用时 resultSet.next()指针指在 第一个数据之前
           // 如果 ResultSet 是空的（即没有返回任何行），第一次调用 next() 将返回 false，循环不会执行。
            // 如果存在数据，next() 将移动指针到第一行并返回 true，然后数据处理可以开始。

//            取出列的数据
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id = "+id+", name = "+name);
        }
//        释放资源
        resultSet.close();
        statement.close();
        connection.close();
    }
}
